package com.bitoon.basketdudes.web.jpa;

import java.io.Serializable;
import java.math.BigDecimal;
import javax.persistence.Basic;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.NamedQueries;
import javax.persistence.NamedQuery;
import javax.persistence.Table;
import org.hibernate.annotations.Formula;

@Entity
@Table(name = "est_equipo", schema="basket")
@NamedQueries({
    /*
    @NamedQuery(name = "EstEquipo.findAll", query = "SELECT e FROM EstEquipo e"),
     */
    @NamedQuery(name = "EstEquipo.findByEquipoId", query = "SELECT e FROM EstEquipo e WHERE e.equipoId = :equipoId")
    /*
    @NamedQuery(name = "EstEquipo.findByUsuarioId", query = "SELECT e FROM EstEquipo e WHERE e.usuarioId = :usuarioId"),
    @NamedQuery(name = "EstEquipo.findByPartidos", query = "SELECT e FROM EstEquipo e WHERE e.partidos = :partidos"),
    @NamedQuery(name = "EstEquipo.findByGanados", query = "SELECT e FROM EstEquipo e WHERE e.ganados = :ganados"),
    @NamedQuery(name = "EstEquipo.findByPerdidos", query = "SELECT e FROM EstEquipo e WHERE e.perdidos = :perdidos"),
    @NamedQuery(name = "EstEquipo.findByAbandonos", query = "SELECT e FROM EstEquipo e WHERE e.abandonos = :abandonos"),
    @NamedQuery(name = "EstEquipo.findByMinutos", query = "SELECT e FROM EstEquipo e WHERE e.minutos = :minutos"),
    @NamedQuery(name = "EstEquipo.findByPuntos", query = "SELECT e FROM EstEquipo e WHERE e.puntos = :puntos"),
    @NamedQuery(name = "EstEquipo.findByTiro1", query = "SELECT e FROM EstEquipo e WHERE e.tiro1 = :tiro1"),
    @NamedQuery(name = "EstEquipo.findByPto1", query = "SELECT e FROM EstEquipo e WHERE e.pto1 = :pto1"),
    @NamedQuery(name = "EstEquipo.findByPorc1", query = "SELECT e FROM EstEquipo e WHERE e.porc1 = :porc1"),
    @NamedQuery(name = "EstEquipo.findByTiro2", query = "SELECT e FROM EstEquipo e WHERE e.tiro2 = :tiro2"),
    @NamedQuery(name = "EstEquipo.findByPto2", query = "SELECT e FROM EstEquipo e WHERE e.pto2 = :pto2"),
    @NamedQuery(name = "EstEquipo.findByPorc2", query = "SELECT e FROM EstEquipo e WHERE e.porc2 = :porc2"),
    @NamedQuery(name = "EstEquipo.findByTiro3", query = "SELECT e FROM EstEquipo e WHERE e.tiro3 = :tiro3"),
    @NamedQuery(name = "EstEquipo.findByPto3", query = "SELECT e FROM EstEquipo e WHERE e.pto3 = :pto3"),
    @NamedQuery(name = "EstEquipo.findByPorc3", query = "SELECT e FROM EstEquipo e WHERE e.porc3 = :porc3"),
    @NamedQuery(name = "EstEquipo.findByRebotesAtaque", query = "SELECT e FROM EstEquipo e WHERE e.rebotesAtaque = :rebotesAtaque"),
    @NamedQuery(name = "EstEquipo.findByRebotesDefensa", query = "SELECT e FROM EstEquipo e WHERE e.rebotesDefensa = :rebotesDefensa"),
    @NamedQuery(name = "EstEquipo.findByAsistencias", query = "SELECT e FROM EstEquipo e WHERE e.asistencias = :asistencias"),
    @NamedQuery(name = "EstEquipo.findByRobos", query = "SELECT e FROM EstEquipo e WHERE e.robos = :robos"),
    @NamedQuery(name = "EstEquipo.findByPerdidas", query = "SELECT e FROM EstEquipo e WHERE e.perdidas = :perdidas"),
    @NamedQuery(name = "EstEquipo.findByTapones", query = "SELECT e FROM EstEquipo e WHERE e.tapones = :tapones"),
    @NamedQuery(name = "EstEquipo.findByTaponesContra", query = "SELECT e FROM EstEquipo e WHERE e.taponesContra = :taponesContra"),
    @NamedQuery(name = "EstEquipo.findByFaltas", query = "SELECT e FROM EstEquipo e WHERE e.faltas = :faltas"),
    @NamedQuery(name = "EstEquipo.findByFaltasContra", query = "SELECT e FROM EstEquipo e WHERE e.faltasContra = :faltasContra")
     * 
     */
})
public class EstEquipo implements Serializable {
    private static final long serialVersionUID = 1L;
    @Id
    @Basic(optional = false)
    @Column(name = "equipo_id")
    private Integer equipoId;
    @Basic(optional = false)
    @Column(name = "usuario_id")
    private int usuarioId;
    @Basic(optional = false)
    @Column(name = "partidos")
    private int partidos;
    @Basic(optional = false)
    @Column(name = "ganados")
    private int ganados;
    @Basic(optional = false)
    @Column(name = "perdidos")
    private int perdidos;
    @Basic(optional = false)
    @Column(name = "abandonos")
    private int abandonos;
    @Basic(optional = false)
    @Column(name = "minutos")
    private int minutos;
    @Basic(optional = false)
    @Column(name = "puntos")
    private int puntos;
    @Column(name = "puntos_contra")
    private int puntosContra;
    @Basic(optional = false)
    @Column(name = "tiro1")
    private int tiro1;
    @Basic(optional = false)
    @Column(name = "pto1")
    private int pto1;
    @Basic(optional = false)
    @Column(name = "porc1")
    private BigDecimal porc1;
    @Basic(optional = false)
    @Column(name = "tiro2")
    private int tiro2;
    @Basic(optional = false)
    @Column(name = "pto2")
    private int pto2;
    @Basic(optional = false)
    @Column(name = "porc2")
    private BigDecimal porc2;
    @Basic(optional = false)
    @Column(name = "tiro3")
    private int tiro3;
    @Basic(optional = false)
    @Column(name = "pto3")
    private int pto3;
    @Basic(optional = false)
    @Column(name = "porc3")
    private BigDecimal porc3;
    
    @Basic(optional = false)
    @Column(name = "rebotes_ataque")
    private int rebotesAtaque;
    @Basic(optional = false)
    @Column(name = "rebotes_defensa")
    private int rebotesDefensa;
    @Basic(optional = false)
    @Column(name = "asistencias")
    private int asistencias;
    @Basic(optional = false)
    @Column(name = "robos")
    private int robos;
    @Basic(optional = false)
    @Column(name = "perdidas")
    private int perdidas;
    @Basic(optional = false)
    @Column(name = "tapones")
    private int tapones;
    @Basic(optional = false)
    @Column(name = "tapones_contra")
    private int taponesContra;
    @Basic(optional = false)
    @Column(name = "faltas")
    private int faltas;
    @Basic(optional = false)
    @Column(name = "faltas_contra")
    private int faltasContra;

    @Formula("puntos/partidos")
    public float getPuntosPartido() {
        return puntos/partidos;
    }

    @Formula("puntosContra/partidos")
    public float getPuntosContraPartido() {
        return puntosContra/partidos;
    }

    public EstEquipo() {
    }

    public EstEquipo(Integer equipoId) {
        this.equipoId = equipoId;
    }

    public EstEquipo(Integer equipoId, int usuarioId, int partidos, int ganados, int perdidos, int abandonos, int minutos, int puntos, int tiro1, int pto1, BigDecimal porc1, int tiro2, int pto2, BigDecimal porc2, int tiro3, int pto3, BigDecimal porc3, int rebotesAtaque, int rebotesDefensa, int asistencias, int robos, int perdidas, int tapones, int taponesContra, int faltas, int faltasContra) {
        this.equipoId = equipoId;
        this.usuarioId = usuarioId;
        this.partidos = partidos;
        this.ganados = ganados;
        this.perdidos = perdidos;
        this.abandonos = abandonos;
        this.minutos = minutos;
        this.puntos = puntos;
        this.tiro1 = tiro1;
        this.pto1 = pto1;
        this.porc1 = porc1;
        this.tiro2 = tiro2;
        this.pto2 = pto2;
        this.porc2 = porc2;
        this.tiro3 = tiro3;
        this.pto3 = pto3;
        this.porc3 = porc3;
        this.rebotesAtaque = rebotesAtaque;
        this.rebotesDefensa = rebotesDefensa;
        this.asistencias = asistencias;
        this.robos = robos;
        this.perdidas = perdidas;
        this.tapones = tapones;
        this.taponesContra = taponesContra;
        this.faltas = faltas;
        this.faltasContra = faltasContra;
    }

    public Integer getEquipoId() {
        return equipoId;
    }

    public void setEquipoId(Integer equipoId) {
        this.equipoId = equipoId;
    }

    public int getUsuarioId() {
        return usuarioId;
    }

    public void setUsuarioId(int usuarioId) {
        this.usuarioId = usuarioId;
    }

    public int getPartidos() {
        return partidos;
    }

    public void setPartidos(int partidos) {
        this.partidos = partidos;
    }

    public int getGanados() {
        return ganados;
    }

    public void setGanados(int ganados) {
        this.ganados = ganados;
    }

    public int getPerdidos() {
        return perdidos;
    }

    public void setPerdidos(int perdidos) {
        this.perdidos = perdidos;
    }

    public int getAbandonos() {
        return abandonos;
    }

    public void setAbandonos(int abandonos) {
        this.abandonos = abandonos;
    }

    public int getMinutos() {
        return minutos;
    }

    public void setMinutos(int minutos) {
        this.minutos = minutos;
    }

    public int getPuntos() {
        return puntos;
    }

    public void setPuntos(int puntos) {
        this.puntos = puntos;
    }

    public int getPuntosContra() {
        return puntosContra;
    }

    public void setPuntosContra(int puntos) {
        this.puntosContra = puntos;
    }

    public int getTiro1() {
        return tiro1;
    }

    public void setTiro1(int tiro1) {
        this.tiro1 = tiro1;
    }

    public int getPto1() {
        return pto1;
    }

    public void setPto1(int pto1) {
        this.pto1 = pto1;
    }

    public BigDecimal getPorc1() {
        return porc1;
    }

    public void setPorc1(BigDecimal porc1) {
        this.porc1 = porc1;
    }

    public int getTiro2() {
        return tiro2;
    }

    public void setTiro2(int tiro2) {
        this.tiro2 = tiro2;
    }

    public int getPto2() {
        return pto2;
    }

    public void setPto2(int pto2) {
        this.pto2 = pto2;
    }

    public BigDecimal getPorc2() {
        return porc2;
    }

    public void setPorc2(BigDecimal porc2) {
        this.porc2 = porc2;
    }

    public int getTiro3() {
        return tiro3;
    }

    public void setTiro3(int tiro3) {
        this.tiro3 = tiro3;
    }

    public int getPto3() {
        return pto3;
    }

    public void setPto3(int pto3) {
        this.pto3 = pto3;
    }

    public BigDecimal getPorc3() {
        return porc3;
    }

    public void setPorc3(BigDecimal porc3) {
        this.porc3 = porc3;
    }

    public int getRebotesAtaque() {
        return rebotesAtaque;
    }

    public void setRebotesAtaque(int rebotesAtaque) {
        this.rebotesAtaque = rebotesAtaque;
    }

    public int getRebotesDefensa() {
        return rebotesDefensa;
    }

    public void setRebotesDefensa(int rebotesDefensa) {
        this.rebotesDefensa = rebotesDefensa;
    }

    public int getAsistencias() {
        return asistencias;
    }

    public void setAsistencias(int asistencias) {
        this.asistencias = asistencias;
    }

    public int getRobos() {
        return robos;
    }

    public void setRobos(int robos) {
        this.robos = robos;
    }

    public int getPerdidas() {
        return perdidas;
    }

    public void setPerdidas(int perdidas) {
        this.perdidas = perdidas;
    }

    public int getTapones() {
        return tapones;
    }

    public void setTapones(int tapones) {
        this.tapones = tapones;
    }

    public int getTaponesContra() {
        return taponesContra;
    }

    public void setTaponesContra(int taponesContra) {
        this.taponesContra = taponesContra;
    }

    public int getFaltas() {
        return faltas;
    }

    public void setFaltas(int faltas) {
        this.faltas = faltas;
    }

    public int getFaltasContra() {
        return faltasContra;
    }

    public void setFaltasContra(int faltasContra) {
        this.faltasContra = faltasContra;
    }

    @Override
    public int hashCode() {
        int hash = 0;
        hash += (equipoId != null ? equipoId.hashCode() : 0);
        return hash;
    }

    @Override
    public boolean equals(Object object) {
        // TODO: Warning - this method won't work in the case the id fields are not set
        if (!(object instanceof EstEquipo)) {
            return false;
        }
        EstEquipo other = (EstEquipo) object;
        if ((this.equipoId == null && other.equipoId != null) || (this.equipoId != null && !this.equipoId.equals(other.equipoId))) {
            return false;
        }
        return true;
    }

    @Override
    public String toString() {
        return "com.bitoon.basketdudes.web.jpa.EstEquipo[equipoId=" + equipoId + "]";
    }

    // Porcentajes de victorias y derrotas

    public float getPorcG() {
        if (partidos>0) {
            return (float)ganados/partidos * 100;
        } else {
            return 0f;
        }
    }

    public float getPorcP() {
        if (partidos > 0) {
            return (float)perdidos/partidos * 100;
        } else {
            return 0f;
        }
    }

}
